K8s Pod 裡頭有兩種不同用途的資源定義:
request
:此為針對 Container 可使用的“基本資源”定義。limit
:此為針對 Container 可使用的“資源上限”定義。cpu 800m / memory 512Mi
)cpu 1000m / memory 1024Mi
資源,當然只是定義中最低限度是cpu 800m
。當 Pod Manifest 中定義了limit
時,K8s 底層核心確保 Container 運作上不超過定義中的上限。
cpu 1500m / memory 1024Mi
),即使 node-1 仍有閒置的資源,仍不為此 container 可用的資源。spec:
containers:
- image: k8s.gcr.io/echoserver:1.10
resources:
requests:
memory: "512Mi"
cpu: "800m"
limits:
memory: "1024Mi"
cpu: "1.5"
CPU 以 mili cpu 為單位表示,以 value + m 後綴表達,例如 1000mili cpu 以 1000m 表達~
1000m = 1 cpu = 1 核心意思;500m = 0.5 核心~
RAM 以 byte 為計算單位,可以透過 G, M, K, Gi, Mi, Ki 作為後綴表達單位,例如:128974848 = 129e6 = 129M = 123Mi
參考書籍/文章出處:
Kubernetes 建置與執行 書中 P.56~59
https://k8smeetup.github.io/docs/tasks/configure-pod-container/assign-cpu-ram-container/